This invention relates to requests made to pools of limited resources, such as when a telephone caller is served by call agents in an agent pool, or when a computer application makes requests of a processor, or even when several mechanics are sharing tools out of one tool box. The invention has particular exemplary application for skills-based routing functionality in automatic call distributors (“ACDs”).
In the prior art, requests from single-function (or “single-talent” or “single-skilled”) requester's were made to resources capable of satisfying the requests. Such requests were typically directed in serial fashion via a unitary queue to a Pool Control Logic. The Pool Control Logic then directed each request to a resource capable of satisfying the single-function request. Typically, requests were served on a “first come, first served” basis. That is, as new requests reach the front of their respective queues, resources capable of satisfying the pending requests were typically allocated on a “first come, first served” basis. Typically, of the resources capable of satisfying a request, the resource that has been idle the longest period of time would be allocated to the request.
This state of the prior art is illustrated in FIG. 1, where, for example, automatic call distribution (“ACD”) center 100 has a number of agents on duty, some of whom speak English (E) 102, some of whom speak Spanish (S) 104, and some of whom speak French (F) 106. Typically, agents from each queue may be assigned to satisfy a request based on each agent's idle time. That is, typically the agent that has been idle the longest period of time among the English speaking agents 107 may satisfy the next pending English request. The same may be true for the other agent pools, as well.
Single-function (or single-talent) callers 114 in unitary queue 116 make requests to ACD center 100 in sequence. The requests for resources are typically directed in serial fashion via the unitary queue 116 to a Pool Control Logic 112. Pool Control Logic 112 directs each request to a resource based on the type of resource requested. Thus, the Pool Control Logic 112 may work to direct an English speaking caller to an agent capable of speaking English, a Spanish speaking caller to an agent capable of speaking Spanish, and a French speaking caller to an agent capable of speaking French. As new requests reach the front of their respective queues, resources capable of satisfying the pending request are typically allocated on a “first come, first served” basis without regard to prospective flexibility of the request.
As an example illustrated by FIG. 1, caller E1 requesting an English speaking agent is the first pending request in queue 114, caller S2 requesting a Spanish speaking agent is the next pending request in queue 114, caller F3 requesting a French speaking agent is the next pending request in queue 114, and so on. Typically, in a prior art system Pool Control Logic 112 may assign caller E1 to an available agent from English pool 102. If no agent is available from pool 102, caller E1 may be queued in queue 122 to await an agent from pool 102 to become available. Similarly, Pool Control Logic 112 may assign caller S2 to an available agent from Spanish pool 104. If no agent is available from pool 104, caller S2 may be queued in queue 124 to await an agent from pool 104 to become available. Likewise, Pool Control Logic 112 may assign caller F3 to an available agent from French pool 106. If no agent is available from pool 106, caller F3 may be queued in queue 126 to await an agent from pool 106 to become available.
Typically, the prior art does not consider the flexibility of a request in allocating resources to satisfy such a request. For example, suppose that a caller to the ACD system 100 of FIG. 1 is capable of speaking both English and Spanish. The prior art does not take advantage of such flexibility in allocating resources to service the caller, but instead pigeonholes the caller as being either an English speaking request or a Spanish speaking request. Generally, a request (e.g., a caller) is required to choose a single type of resource (e.g., an English speaking agent), even if the request is capable and willing to accept any of a plurality of different types of resources. More specifically, ACD system 100 of FIG. 1 generally utilizes an Interactive Voice Response Unit (“IVRU”) to interact with a caller in order to ascertain the language in which the caller desires to speak. For instance, an IVRU may prompt a caller to “press 1 for English, press 2 for Spanish, or press 3 for French.” Thus, a caller may designate the language in which the caller desires to interact with an agent. However, the ACD system 100 typically does not determine whether a caller is capable of speaking a plurality of languages and willing to interact with an agent in any of the plurality of languages.
Thus, as can be seen from the above-examples, the prior art allocates resources to requests without taking into account requesters' flexibility or multi-functionality. Rather, the prior art allocates resources to requests based solely on a single function (or single attribute or single characteristic) of the requesters.